In a typical computer architecture, a central processing unit (CPU) controls computer operations and provides processing capability. In particular, a CPU can receive instructions and data. Acting under the instructions, the CPU processes the data--i.e., accepts data, performs one or more operations on the data, and returns corresponding results. With modern technology, a CPU can be implemented on a single integrated circuit (IC) device.
A CPU is generally supported by several different types of memory, each of which can store information for data or instructions. These different types of memory may include cache memory, external IC memory, and mass memory. Cache memory is internal to the CPU (i.e., implemented on the same IC device as the CPU) and comprises high-speed memory for storing frequently used data or instructions. The cache memory enables a processor to get data and instructions much more quickly than if the same information were stored in some other type of memory. External memory is typically implemented on an IC device separate from that on which the CPU is implemented and can be in the form of random access memory (RAM). RAM can be either dynamic RAM (DRAM) or static RAM (SRAM). Individual data stored in a external memory can be accessed directly by the CPU. External memory is slower than cache memory. Mass memory may comprise disc and/or tape storage devices. Mass memory holds more information than either cache memory or external memory, but is generally slower than both.
In typical operation, information which is relevant for current operations by a CPU are held in cache memory. Such information can be either data or instructions. Data is generally information which may be manipulated, operated upon, or otherwise processed. In some cases, data can be defined and structured in arrays, with each array having a separate array operand. An instruction is information which may be used to command, direct, or otherwise control operations in a computer. Instructions are typically executed by performing one or more functions.
If information which is needed for processing is not contained within cache memory, the processor may direct that such information be retrieved from external memory or mass memory. With direct mapped cache, information within a particular part of external memory can only be mapped into a specific part of cache memory. In such case, the new information is brought into the cache memory where it overwrites the old information. As such, cache memory is constantly overwritten during typical operation of a computer architecture.
In some cases, especially loop operations or routines, the same information (i.e., data or instructions) may be written multiple times into cache memory during execution of the loop routine. That is, the same information is brought into cache memory, overwritten, and then brought in again at another point within the same loop routine. This process of repeatedly retrieving and overwriting the same information in cache memory during a loop routine is extremely inefficient, and thus, adversely impacts the performance of the computer architecture.